package com.xinqi.modules.user.users.user.mapper;

import com.xinqi.modules.user.user.domain.UserEntity;
import com.xinqi.modules.user.user.dto.req.SearchFriendDTO;
import com.xinqi.modules.user.user.dto.rsp.SearchFriendResultDTO;
import com.xinqi.modules.user.user.dto.rsp.UserLoginResultDTO;
import com.xinqi.common.mybatis.data.repo.SuperMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户信息数据层
 *
 * @author: wenjie
 * @date: 2023/05/17
 */
@Mapper
public interface UserMapper extends SuperMapper<UserEntity> {

    /**
     * 根据手机号码查询，包含已注销
     *
     * @param mobile
     * @return
     */
    List<UserEntity> findByMobileIncludeDelete(@Param("mobile") String mobile);

    /**
     * 关键字搜索 -- 新奇号、手机号精准查询
     *
     * @param dto
     * @return
     */
    List<SearchFriendResultDTO> selectUsersByKeyword(@Param("dto") SearchFriendDTO dto);

    /**
     * 登录查询用户所有信息
     * @param mobile
     * @return
     */
    UserLoginResultDTO selectUserLoginByMobile(String mobile);

    /**
     * 登录查询用户所有信息通过ID
     * @param id
     * @return
     */
    UserLoginResultDTO selectUserLoginById(Long id);

}
